.\" Man page generated from reStructuredText.
.
.TH "CEPH-KVSTORE-TOOL" "8" "Jan 23, 2022" "dev" "Ceph"
.SH NAME
ceph-kvstore-tool \- ceph kvstore manipulation tool
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.SH 提纲
.nf
\fBceph\-kvstore\-tool\fP <leveldb|rocksdb|bluestore\-kv> <store path> \fIcommand\fP [args...]
.fi
.sp
.SH 描述
.sp
\fBceph\-kvstore\-tool\fP 是个 kvstore （键值存储）操作工具，可以用来离线操作 leveldb/rocksdb 的数据（比如 OSD 的 omap ）。
.SH 命令
.sp
\fBceph\-kvstore\-tool\fP 工具有很多命令，可用于调试，如下：
.INDENT 0.0
.TP
\fBlist [prefix]\fP
打印所有键值对的键名，有 URL 编码的前缀时只打印匹配的。
.TP
\fBlist\-crc [prefix]\fP
打印所有键值对的 CRC 校验码，有 URL 编码的前缀时只打印匹配的。
.TP
\fBdump [prefix]\fP
打印所有键值对的键名及其值，有 URL 编码的前缀时只打印匹配的。
.TP
\fBexists <prefix> [key]\fP
查验是否存在以此 URL 为前缀的键值对；如果指定了键名，就只查验带有此前缀的键名。
.TP
\fBget <prefix> <key> [out <file>]\fP
通过 URL 编码存储的 prefix 和 key 获取 KV 对的值。
如果指定了文件，把此值写入该文件。
.TP
\fBcrc <prefix> <key>\fP
通过 URL 编码存储的 prefix 和 key 获取 KV 对的 CRC 。
.TP
\fBget\-size [<prefix> <key>]\fP
获取 prefix 和 key 所指内容的大概尺寸、或是值的尺寸。
.TP
\fBset <prefix> <key> [ver <N>|in <file>]\fP
通过 URL 编码存储的 prefix 和 key 设置 KV 对的值。
这个值可以是 \fIversion_t\fP 或文本。
.TP
\fBrm <prefix> <key>\fP
删除 URL 编码的 prefix 和 key 的 KV 对。
.TP
\fBrm\-prefix <prefix>\fP
删除 URL 编码存储的 prefix 之下的所有 KV 对。
.TP
\fBstore\-copy <path> [num\-keys\-per\-tx]\fP
把所有 KV 对都复制到 \fBpath\fP 目录里。
[num\-keys\-per\-tx] 是一个事务可以复制的 KV 对数量。
.TP
\fBstore\-crc <path>\fP
把所有 KV 对的 CRC 都存储到 \fBpath\fP 内的一个文件里。
.TP
\fBcompact\fP
子命令 \fBcompact\fP 用于压缩 kvstore 的所有数据。
它会打开数据库、触发数据库的压缩功能。压缩后，
会释放一些磁盘空间。
.TP
\fBcompact\-prefix <prefix>\fP
压缩 URL 编码的 prefix 相关的所有条目。
.TP
\fBcompact\-range <prefix> <start> <end>\fP
压缩由 URL 编码的 prefix 和范围确定的那些条目。
.TP
\fBdestructive\-repair\fP
尽力（有可能是破坏性地）恢复损坏的数据库。
注意，底层是 rocksdb 时，此操作可能会损坏本来正常的数据库——
此命令只能作为终极手段！
.TP
\fBstats\fP
打印底层键值数据库的统计信息，这只是个信息来源。
格式和信息内容随版本变化频繁，对于 RocksDB ，
包含的信息有压缩统计信息、性能计数器、内存使用率和 RocksDB 内部统计信息。
.TP
\fBhistogram\fP
呈现出底层 KV 数据库的键/值尺寸分布情况统计。
.UNINDENT
.SH 使用范围
.sp
\fBceph\-kvstore\-tool\fP 是 Ceph 的一部分，这是个伸缩力强、开源、分布式的存储系统，更多信息参见 \fI\%https://docs.ceph.com\fP 。
.SH 参考
.sp
ceph(8)
.SH COPYRIGHT
2010-2014, Inktank Storage, Inc. and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0)
.\" Generated by docutils manpage writer.
.
